Generating a graphical user interface for a data processing system may make extensive use of image data. For example, systems may be configured to display image data to create a desktop or display background. Image data can also be used as graphical icons and configured to represent various elements of the user interface. In particular, graphical icons may be used to represent disks, documents, and computer applications that may be executed by the data processing system. The images used within the graphical user interface may be simple images or may be a composition of multiple images. For example, icon images displayed on the user interface may be a composite of a basic icon images and several other images that are used to represent, for example, a current state of the file or application.
The resources used to generate the images may become significant over time in systems where a large number of images are displayed. For example, in multi-user systems the generated data may consume a large amount of storage space. Each user may require a subset of all possible images used by the user interface. The image data for each user should be private to the user for security and privacy purposes, as it may be possible to infer information about the system configuration for a given user based on the subset of images used. To maintain the privacy and security of generated image data, each user may cache the generated images privately. However, maintaining multiple private caches may result in a significant amount of duplicate data.